#pragma once
#include <Arduino.h>

// 红外遥控引脚定义
#define IR_RECEIVE_PIN 26

// 红外遥控命令定义
#define IR_CMD_POWER    0xFF02FD
#define IR_CMD_MODE     0xFFC23D
#define IR_CMD_NEXT     0xFFE01F
#define IR_CMD_PREVIOUS 0xFFA857
#define IR_CMD_PLAY     0xFF906F
#define IR_CMD_UP       0xFF629D
#define IR_CMD_DOWN     0xFFA858
#define IR_CMD_LEFT     0xFF22DD
#define IR_CMD_RIGHT    0xFF02FE
#define IR_CMD_ENTER    0xFFE21D

// 红外遥控类
class IRRemote {
public:
    IRRemote();
    ~IRRemote();
    
    // 初始化红外遥控
    void begin();
    
    // 检查是否有红外命令
    bool available();
    
    // 读取红外命令
    uint32_t readCommand();
    
    // 获取命令名称
    const char* getCommandName(uint32_t command);
    
private:
    // 最近一次接收到的命令
    uint32_t lastCommand;
    
    // 上次接收时间
    unsigned long lastReceiveTime;
    
    // 重复按键抑制时间（毫秒）
    static const unsigned long REPEAT_SUPPRESS_TIME = 200;
};